import sympy as sy
import numpy as np
import matplotlib.pyplot as plt

# Exercício 2. Aceleração constante #


#arranque do repouso, aceleração constante 𝑎𝑥 = 3m/s2 
#velocidade de descolagem de 250 km/h.

#1
#descreve o movimento do avião (lei do movimento) 𝑥(𝑡). 
#Faça o gráfico da lei do movimento.

#ax = 3 m/s^2
#v0 = 0 m/s
#v = 250 km/h = 250*1000/3600 m/s
#x0 = 0 m

#lei do movimento x(t) = x0 + v0*t + 1/2*ax*t^2
# movimento do aviao  x(t) = 1.5 * t**2

t = np.linspace(0,3600,100)
x = 1.5 * t**2

plt.plot(t, x)
plt.xlabel('tempo (s)')
plt.ylabel('posição (m)')
plt.title('Movimento do Avião')
plt.grid()
plt.show()


#2
#Em que instante e qual a distância percorrida pelo avião quando atinge a velocidade de descolagem?
#v = 250 km/h = 250*1000/3600 m/s = 69.44 m/s

#v = v0 + ax*t  -> 69.44 = 0 + 3*t

#t = 69.44/3 = 23.15 s

#x = 1.5 * 23.15**2 = 803.8 m (lei do movimento x(t) = 1.5 * t**2)


#3
#Use sympy.integrate() para integrar a aceleração em função de tempo duas vezes, para obter a velocidade e a
#posição do avião como funções (simbólicos) de tempo.


t = sy.symbols('t')
a = 3  # m/s²

v = sy.integrate(a, t)  # v(t) = 3t
x = sy.integrate(v, t)  # x(t) = 1.5t**2

print("v(t) =", v)  
print("x(t) =", x)  


#4
#Use sympy.nsolve() para encontrar o tempo e a posição de descolagem.

v_descolagem = 250 * 1000 / 3600  # m/s
t_descolagem = sy.nsolve(v - v_descolagem, t, 0) 
x_descolagem = x.subs(t, t_descolagem)

print("Tempo de decolagem (s):", t_descolagem)
print("Distância percorrida (m):", x_descolagem)


t_vals = np.linspace(0, t_descolagem, 100)
x_vals = 1.5 * t_vals**2

plt.plot(t_vals, x_vals)
plt.xlabel('tempo (s)')
plt.ylabel('posição (m)')
plt.title('Movimento do Avião')
plt.grid()
plt.show()